package model

import (
	"time"
)

// TodoItem 表示一个待办事项
type TodoItem struct {
	ID          int       `json:"id"`          // 任务ID
	Description string    `json:"description"` // 任务描述
	CreatedAt   time.Time `json:"created_at"`  // 创建时间
	Branch      string    `json:"branch"`      // 所属分支
	Completed   bool      `json:"completed"`   // 是否完成
}

// TodoRepository 定义待办事项数据操作接口
type TodoRepository interface {
	// 根据分支获取所有未完成的待办事项
	GetTodosByBranch(branch string) ([]TodoItem, error)
	
	// 添加新的待办事项
	AddTodo(todo TodoItem) error
	
	// 根据ID或描述标记待办事项为完成
	MarkTodoCompleted(branch string, identifier string) error
	
	// 获取下一个可用的ID
	GetNextID(branch string) (int, error)
	
	// 保存所有待办事项到存储
	SaveTodos(todos []TodoItem) error
	
	// 加载所有待办事项
	LoadTodos() ([]TodoItem, error)
}